Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Embedded HTTP server</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Embedded_HTTP_server"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Embedded_HTTP_server rootpage-Embedded_HTTP_server skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Embedded HTTP server</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p>An <b>embedded HTTP server</b> is an <a href="HTTP_server" class="mw-redirect" title="HTTP server">HTTP server</a> used in an <a href="Embedded_system" title="Embedded system">embedded system</a>.
</p><p>The HTTP server is usually implemented as a <a href="Software_component" title="Software component">software component</a> of an <a href="Application_software" title="Application software">application</a> (embedded) system that controls and/or monitors a machine with mechanical and/or electrical parts.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>The HTTP server implements the <a href="Hypertext_Transfer_Protocol" class="mw-redirect" title="Hypertext Transfer Protocol">HTTP</a> <a href="Communications_protocol" class="mw-redirect" title="Communications protocol">protocol</a> in order to allow communications with one or more local or remote <a href="User_(computing)" title="User (computing)">users</a> using a <a href="Web_browser" title="Web browser">browser</a>. The aim is to let users to interact with information provided by the embedded system (<a href="Web_user_interface" class="mw-redirect" title="Web user interface">user interface</a>, data monitoring, <a href="Data_logger" title="Data logger">data logging</a>, data configuration, etc.) via <a href="Computer_network" title="Computer network">network</a>, without using traditional peripherals required for local user interfaces (<a href="Display_device" title="Display device">display</a>, <a href="Computer_keyboard" title="Computer keyboard">keyboard</a>, etc.).<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>In some cases the functionalities provided via HTTP server allow also program-to-program communications, e.g. to retrieve data logged about the monitored machine, etc.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Usages">Usages</h2></div>
<p>Examples of usage within an embedded application might be (e.g.):
</p>
<ul><li>to provide a <a href="Thin_client" title="Thin client">thin client</a> interface for a traditional application;</li>
<li>to provide <a href="Database_index" title="Database index">indexing</a>, <a href="Report" title="Report">reporting</a>, and <a href="Debugging" title="Debugging">debugging</a> tools during the development stage;</li>
<li>to implement a protocol for the distribution and acquisition of information to be displayed in the regular interface — possibly a <a href="Web_service" title="Web service">web service</a>, and possibly using <a href="XML" title="XML">XML</a> as the <a href="Serialization" title="Serialization">data format</a>;</li>
<li>to develop a <a href="Web_application" title="Web application">web application</a>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Advantages">Advantages</h2></div>
<p>There are a few advantages to using HTTP to perform the above:
</p>
<ul><li>HTTP is a well studied cross-platform protocol and there are mature implementations freely available;</li>
<li>HTTP is seldom blocked by <a href="Firewall_(computing)" title="Firewall (computing)">firewalls</a> and <a href="Intranet" title="Intranet">intranet</a> <a href="Router_(computing)" title="Router (computing)">routers</a>;</li>
<li>HTTP clients (e.g. <a href="Web_browser" title="Web browser">web browsers</a>) are readily available with all modern computers;</li>
<li>there is a growing tendency of using embedded HTTP servers in applications that parallels the rising trends of <a href="Home_network" title="Home network">home-networking</a> and <a href="Ubiquitous_computing" title="Ubiquitous computing">ubiquitous computing</a>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Typical_requirements">Typical requirements</h2></div>
<p>Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the non-functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements are the following ones.
</p>
<ul><li>"Small" <a href="Random-access_memory" title="Random-access memory">RAM</a> and <a href="Read-only_memory" title="Read-only memory">ROM</a> footprint. The exact size depends on the system, but in many cases anything over several megabytes is not embeddable.</li>
<li>Minimal <a href="CPU" class="mw-redirect" title="CPU">CPU</a> utilization.</li>
<li><a href="Cross_compilation" class="mw-redirect" title="Cross compilation">Cross compilation</a> support for multiple <a href="CPU" class="mw-redirect" title="CPU">CPU</a> and <a href="Operating_system" title="Operating system">operating system</a> combinations.</li>
<li>Easy integration with an existing application, including <a href="Static_linking" class="mw-redirect" title="Static linking">static linking</a> with the operating system and application.</li>
<li>Serving <a href="Web_page" title="Web page">pages</a> from <a href="Application_software" title="Application software">application</a> <a href="Computer_memory" title="Computer memory">memory</a> if there is no <a href="File_system" title="File system">file system</a>.</li>
<li><a href="Modular_programming" title="Modular programming">Modularity</a>.</li>
<li>Single <a href="Thread_(computing)" title="Thread (computing)">thread</a> and <a href="Multithreading_(software)" class="mw-redirect" title="Multithreading (software)">multi-thread</a> support.</li></ul>
<p>For every specific project, requirements can vary significantly. For example, ROM and RAM footprints can be a very serious constraint and limit the choices of the system designer. <a href="C%2B%2B" title="C++">C++</a> or <a href="Java_Virtual_Machine" class="mw-redirect" title="Java Virtual Machine">JVM</a> availability for the system can be another constraint. Frequently performance is an issue, because typical embedded systems run multiple simultaneous tasks and an HTTP server is only one of them and may be configured as a low <a href="Scheduling_(computing)" title="Scheduling (computing)">priority</a> <a href="Task_(computing)" title="Task (computing)">task</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Comparison_of_web_server_software" title="Comparison of web server software">Comparison of web server software</a></li>
<li><a href="Comparison_of_application_servers" class="mw-redirect" title="Comparison of application servers">Comparison of application servers</a></li>
<li><a href="Server_(computing)" title="Server (computing)">Server (computing)</a></li>
<li><a href="HTTP_server" class="mw-redirect" title="HTTP server">HTTP server</a></li>
<li><a href="Web_server" title="Web server">Web server</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFJohnyMadhusoodanan2021" class="citation journal cs1">Johny, Anil; Madhusoodanan, K. N. (2021). <a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs44196-021-00040-x">"Edge Computing Using Embedded Webserver with Mobile Device for Diagnosis and Prediction of Metastasis in Histopathological Images"</a>. <i>International Journal of Computational Intelligence Systems</i>. <b>14</b>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs44196-021-00040-x">10.1007/s44196-021-00040-x</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:244923748">244923748</a>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.oracle.com/en/middleware/fusion-middleware/web-tier/12.2.1.4/secure-ohs/administering-security-oracle-http-server.pdf">"Administering Security for Oracle HTTP server"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.gnu.org/software/libmicrohttpd/">libmicrohttpd</a> contains an extensive list of embedded HTTP server libraries towards the bottom of the page</li>
<li><a rel="nofollow" class="external text" href="https://www.keil.com/pack/doc/mw/Network/html/group__net_h_t_t_p___func.html">Example: functionalities of an embedded HTTP server component</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-03-05" href="https://en.wikipedia.org/wiki/?title=Embedded_HTTP_server&amp;oldid=1278939746">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>